//获取app对象
const app = getApp()
//引入api接口
const {	workerRegister, getIndexWorker } = require('../../utils/api')
const {
	returnBack,
	DIFFTIME,
	getNowFormatDate
} = require('../../utils/util')

Page({
	data: {
		//步骤表
		steps: [
			{
				stepId: 0,
				stepName: '审核中'
			},
			{
				stepId: 1,
				stepName: '审核通过'
			},
		],
		//当前步骤
		stepIndex: 0,
		//步骤状态
		currentStatus: 'process',

		//时间选择器
		mode: '',
		dateVisible: false,
		date: new Date('2021-12-23').getTime(), // 支持时间戳传入
		dateText: '',

		// 指定选择区间起始值
		start: '2000-01-01 00:00:00',
		end: '2030-09-09 12:12:12',

		//康复师信息
		userInfo: {
			memberId: '', // 注册该康复师账号的用户账号id
			name: '', // 姓名
			sex: '', // 性别
			tel: '', // 手机号
			password: '', // 密码
			age: '', // 年龄（根据出生日期算）
			workDay: '', // 工龄
			avatar: '/static/image/upload.png', // 认证照片
			idPicFront: '/static/image/身份证反面.png', // 身份证国徽面
			idPicBack: '/static/image/身份证正面.png' // 身份证人像面
		}
	},
	//注册
	userRegister() {
		//把当前登录用户的id放进去
		this.setData({
			"userInfo.memberId": app.globalData.currentUser.id
		})
		const { name, sex, tel, password, age, workDay, avatar, idPicFront, idPicBack } = this.data.userInfo
		const type = '2'
		if (name == '' || sex == '' || tel == '' || password == '' || age == '' || workDay == '' || avatar == '/static/image/upload.png' || idPicFront == '/static/image/身份证反面.png' || idPicBack == '/static/image/身份证正面.png' ) {
			wx.showToast({
				title: '请将信息填写完整！',
				icon: 'none'
			})
		} else {
			const worker = this.data.userInfo
			console.log(worker);
			//去注册
			workerRegister(this.data.userInfo).then((res) => {
				console.log(res.data);
				//如果请求成功，把返回的用户放到app里的currentUser中，重定向到主页
				if (res.code == 200) {
					app.globalData.currentUser = res.data
					console.log("当前登录用户为", app.globalData.currentUser);
					returnBack('/pages/hospital/users', '注册成功')
				}
			})
		}
	},

	//展示时间选择框
	showPicker(e) {
		const {
			mode
		} = e.currentTarget.dataset;
		this.setData({
			mode,
			[`${mode}Visible`]: true,
		});
	},
	//隐藏时间选择框
	hidePicker() {
		const {
			mode
		} = this.data;
		this.setData({
			[`${mode}Visible`]: false,
		});
	},
	//切换选择的时间
	onColumnChange(e) {
		console.log('pick', e.detail.value);
	},
	//选择出生日期（点击确定）
	onConfirm(e) {
		const {
			value
		} = e.detail;
		const {
			mode
		} = this.data;
		console.log('confirm', value);

		// 根据出生日期与现在的时间，计算出年龄
		// 1.获取当前日期
		const nowDay = getNowFormatDate()
		console.log("当前日期为" + nowDay);
		// 2.计算差值（年龄向下取整）
		const age = Math.floor(DIFFTIME(value, nowDay, 'y'))
		console.log("年龄为" + age);

		this.setData({
			"userInfo.age": age,
			[mode]: value,
			[`${mode}Text`]: value,
		});
		this.hidePicker();

		console.log(this.data.userInfo.age);
	},

	//填写姓名
	changeName(e) {
		const name = e.detail.value
		this.setData({
			"userInfo.name": name
		})
		console.log(this.data.userInfo.name);
	},
	//选择性别
	changeSex(e) {
		const sex = e.detail.value
		this.setData({
			"userInfo.sex": sex
		})
		console.log(this.data.userInfo.sex);
	},
	//填写手机号
	changeTel(e) {
		const tel = e.detail.value
		this.setData({
			"userInfo.tel": tel
		})
		console.log(this.data.userInfo.tel);
	},
	//填写密码
	changePassword(e) {
		const password = e.detail.value
		this.setData({
			"userInfo.password": password
		})
		console.log(this.data.userInfo.password);
	},
	//填写工龄
	changeWorkDay(e) {
		const workDay = e.detail.value
		this.setData({
			"userInfo.workDay": workDay
		})
		console.log(this.data.userInfo.workDay);
	},
	//上传照片
	changePic() {
		wx.chooseMedia({
			count: 1,
			mediaType: ['image'],
			success: (res) => {
				//展示本地文件路径，上传到后端
				this.setData({
					"userInfo.avatar": res.tempFiles[0].tempFilePath
				})
				console.log('前端缓存路径：' + res.tempFiles[0].tempFilePath); // 前端缓存路径
				// 上传文件
				wx.uploadFile({
					url: 'http://121.41.73.196:80/client/wxUpload/uploadFile',
					filePath: res.tempFiles[0].tempFilePath,
					name: 'file',
					formData: {
						user: 'test'
					},
					success: (res) => {
						// 把文件路径返回
						this.setData({
							['userInfo.avatar']: res.data
						})
						console.log('后端本地路径：' + this.data.userInfo.avatar); // 后端本地路径
					},
				});
			}
		})
	},
	//上传身份证国徽面
	uploadIdPicFront() {
		wx.chooseMedia({
			count: 1,
			mediaType: ['image'],
			success: (res) => {
				//展示本地文件路径，上传到后端
				this.setData({
					"userInfo.idPicFront": res.tempFiles[0].tempFilePath
				})
				console.log('前端缓存路径：' + res.tempFiles[0].tempFilePath); // 前端缓存路径
				// 上传文件
				wx.uploadFile({
					url: 'http://121.41.73.196:80/client/wxUpload/uploadFile',
					filePath: res.tempFiles[0].tempFilePath,
					name: 'file',
					formData: {
						user: 'test'
					},
					success: (res) => {
						// 把文件路径返回
						this.setData({
							['userInfo.idPicFront']: res.data
						})
						console.log('后端本地路径：' + this.data.userInfo.idPicFront); // 后端本地路径
					},
				});
			}
		})
	},
	//上传身份证人像面
	uploadIdPicBack() {
		wx.chooseMedia({
			count: 1,
			mediaType: ['image'],
			success: (res) => {
				//展示本地文件路径，上传到后端
				this.setData({
					"userInfo.idPicBack": res.tempFiles[0].tempFilePath
				})
				console.log('前端缓存路径：' + res.tempFiles[0].tempFilePath); // 前端缓存路径
				// 上传文件
				wx.uploadFile({
					url: 'http://121.41.73.196:80/client/wxUpload/uploadFile',
					filePath: res.tempFiles[0].tempFilePath,
					name: 'file',
					formData: {
						user: 'test'
					},
					success: (res) => {
						// 把文件路径返回
						this.setData({
							['userInfo.idPicBack']: res.data
						})
						console.log('后端本地路径：' + this.data.userInfo.idPicBack); // 后端本地路径
					},
				});
			}
		})
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad(options) {
		// 获取到当前登录用户的id，去查他有没有注册过康复师账号
		const memberId = app.globalData.currentUser.id
		console.log(memberId);
		getIndexWorker(memberId).then((res) => {
			console.log(res.data);
			if (res.data == null) {
				wx.showToast({
				  title: '还未注册过康复师',
				  icon: 'none'
				})
			} else {
				//如果注册过，就把它放到userInfo中
				this.setData({
					userInfo: res.data
				})
				// 修改步骤状态，如果是1就是完成了
				if (this.data.userInfo.status == '1') {
					this.setData({
						stepIndex: 1,
						currentStatus: 'finish'
					})
				}
				// 把审核结果push到步骤组里，如果通过就不push，如果失败就删掉成功的，然后push进去
				if (this.data.userInfo.status == '2') {
					/**
					 * 想改变数据，必须setData！！！！！
					 */
					// 1.先创建一个数组存改完后的数据
					const testList = this.data.steps
					testList.pop()
					testList.push({stepId: 1, stepName: '审核未通过'})
					console.log(testList);
					// 2.再通过setData给数组赋值
					this.setData({
						steps: testList,
						stepIndex: 1,
						currentStatus: 'error'
					})
				}
			}
		})
	}
})